热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

CVPR2021|利用时序差分进行动作识别的最新Backbone—TDN

©作者|童湛学校|南京大学硕士生研究方向|视频理解转自:PaperWeekly本文将介绍我们组NJU-MCG在行为识别&#x

©作者|童湛

学校|南京大学硕士生

研究方向|视频理解

转自:PaperWeekly

本文将介绍我们组 NJU-MCG 在行为识别(Action Recognition)领域被 CVPR 2021 接收的一篇工作。

论文标题:

TDN: Temporal Difference Networks for Efficient Action Recognition

论文链接:

https://arxiv.org/abs/2012.10071

代码链接:

https://github.com/MCG-NJU/TDN


任务介绍

动作识别(Action Recognition):对给定剪裁过视频(Trimmed Video)进行分类,识别这段视频中人物的动作。目前的主流方法有 2D-based(TSN, TSM, TEINet, etc.)和 3D-based(I3D, SlowFast, X3D)。

动作识别作为视频领域的基础任务,常常作为视频领域其他 high-level task/downstream task 的 backbone,去提取 video-level or clip-level 的视频特征。


研究动机

目前 3D-based 的方法在大规模的 scene-based 的数据集(如 kinetics)上相对于 2D 的方法取得了更好的效果,但是 3D-based 也存在一些明显的问题:

  • 3D-based 的网络参数量大,计算开销大,训练的 scheduler 更长,inference latency 明显慢于 2D-based 的方法。

  • 3D 卷积其实并不能很好得学到时序上信息的变化,而且 3D 卷积学出来的时序 Kernel 的 weight 的分布基本一致,更多的还是对时序上的信息做一种  smooth aggregation。这一点在我们组之前的工作 TANet [1] 中有比较详细的讨论,大家有兴趣也可以参考这篇 TANet [2] 的解读文章。也基于此,3D-based 的网络在 Something-Something 这种对时序信息比较敏感的 video 数据集上并不能取得很好的效果(得靠 Kinetics 的 pre-train来提点 :)

基于以上几点,我们组最近一直在探索更高效的 2D-based 的时序建模方法,提出了包括 TSN,TEINet,TEA,TAM 等轻量级的时序 video backbone。

我们今天要介绍的这篇工作 TDN 的研究动机也很直接明了:我们能不能将时序上运动的变化显式得提取出来然后加入到网络中呢?

最早在 14 年 VGG 就提出了大名鼎鼎的 Two-Stream [3] 网络,通过将光流(Optical Flow)信息做为输入去提取时序上的运动信息。但是 Two-Stream 网络需要两个独立分离的 Backbone,计算量直接翻倍,而且提取光流也需要巨大的计算开销。

所以我们提出了 Temporal Difference Network(TDN)这种结构,尝试通过 Difference 这种简单的操作去强制提取出时序信息中运动的变化,然后补充到正常的 RGB 网络中去,在不增加过多的计算量的前提下去更高效得进行时序建模。

下面简单介绍一下我们的方法和实验结果。


具体方法

▲ TDN 的整体结构图

我们的 TDN 是一个 Two-level 的结构,其主要包含短时和长时两个模块——Short-term temporal difference module(S-TDM)和 Long-term temporal difference module(L-TDM):

▲ S-TDM 和 L-TDM 的网络结构

短时建模(S-TDM):首先,我们还是参考 TSN 的采样方式,在整个 Video-level 上均匀分段(segment)进行采样。在网络的前一个阶段,我们希望可以在段内融合局部的运动变化信息,所以我们提取原始 RGB 帧间的 difference 作为局部运动变化的一种表征,然后 CNN 去进一步提取这种运动信息,具体公式如下:


长时建模(L-TDM):相对于之前 S-TDM 的段内 frame-wise 形式的时序建模,在网络的后一个阶段,我们希望可以对段间的运动变化信息进行增强,去放大运动增强。所以我们参考 TEINet 的形式,设计了一种基于 feature-difference 的通道 attention 增强方法。同时,为了提升最后的效果,我们还增加了 multi-scale 和 bidirectional 的结构。这部分的具体公式如下:



实验结果

这里我们列出 Kinetics-400 和 Something-Something V1 和 V2 上的实验结果,对 TDN 进行分析与验证。

▲ 在 Something-Something V1 上,TDN 与其他 SOTA 方法在计算量和精度上的对比

▲ 在Something-Something V1和V2数据集上,TDN与其他方法的比较

在 Something-Something V1 和 V2 这种对时序运动信息敏感的数据集上,TDN 取得了56.8%(Sth V1)和68.2%(Sth V2)的 Top-1 精度(one-clip, center-crop testing scheme),明显超出了之前的所有方法,取得新的 state-of-the-art。

▲ 在Kinetics-400数据集上,TDN与其他SOTA方法进行比较。

上表列出了 TDN 在 Kinetics-400 数据集上与其他 SOTA 方法进行比较。由于 Kinetics 是一种 scene-based 的数据集,所以时序上运动信息的变化不如 Something-Something 敏感和重要。

但是在计算量较低的条件下,TDN 仍能取得了非常有竞争力的效果,Top-1 精度基本与目前 3D-based 的方法(SlowFast, X3D)的最好结果持平,同时我们还取得了最高的 Top-5 精度(94.4%)(ten-clip, three-crop testing scheme)。


讨论

其实在 Kinetics-400 数据集上,3D-based 方法采用的 dense 采样的方式,只能关注到整个视频的一小段 clip,而 TDN 参考 TSN 进行全局稀疏的采样,可以进行 video-level 的时序建模。从 one-clip, center-crop 这种单个view改为 ten-clip, three-crop 这种30 个 view的测试方法,3D-based 方法会有 8-10 个点的提升,TDN 只有 2-3 个点的提升。

但反过来,在单个 view 的 testing scheme 下,TDN 结果将会大幅度领先于 3D-based 方法。而这种单个 view 的采样方式能够在极低的计算代价下,取得比较好的结果,在工业界的现实场景下也更加实用和有意义。


总结

针对视频数据在时序上的动态特性,我们提出了一种高效的时序差分网络(Temporal Difference Network, TDN),通过 Difference 这种简单的操作,去显式得提取出视频中复杂精细的运动变化,在不增加过多的计算量的前提下去更高效得进行时序建模,并且我们通过实验在各个数据集上证明了 TDN 效果。更多方法中的细节,Ablation study 和实验可视化可以参考我们的论文。

???? 长按识别,邀请您进群!



推荐阅读
author-avatar
尽做好风水_549_881
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有